<html>
	<head>
		<meta charset="utf-8"/>
		<title>BHtmlWidget</title>
		<link rel="stylesheet" type="text/css" href="../style.css"/>
	</head>
	<body>
		<h1>BHtmlWidget</h1>
		<p>Inherites from <a href="BScrollArea.html">BScrollArea</a></p>
		<h2>public</h2>
		<table id="public">
			<tr><td align="right"/><td><a href="#BHtmlWidget(BWidget*)">BHtmlWidget</a>(BWidget* parent = 0);</td></tr>
			<tr><td align="right"/><td><a href="#~BHtmlWidget()">~BHtmlWidget</a>();</td></tr>
			<tr><td align="right">void </td><td><a href="#setReadOnly(bool)">setReadOnly</a>(bool readOnly);</td></tr>
			<tr><td align="right">bool </td><td><a href="#readOnly()">readOnly</a>() const;</td></tr>
			<tr><td align="right">bool </td><td><a href="#open(const BString&)">open</a>(const BString& fileName);</td></tr>
			<tr><td align="right">bool </td><td><a href="#save(const BString&)">save</a>(const BString& fileName) const;</td></tr>
			<tr><td align="right">void </td><td><a href="#setItemSelected(BHtmlItem*, bool)">setItemSelected</a>(BHtmlItem* item, bool selected);</td></tr>
			<tr><td align="right">BHtmlItem* </td><td><a href="#selectedItem()">selectedItem</a>();</td></tr>
			<tr><td align="right">const BHtmlItem* </td><td><a href="#selectedItem()">selectedItem</a>() const;</td></tr>
			<tr><td align="right">bool </td><td><a href="#removeItem(BHtmlItem*)">removeItem</a>(BHtmlItem* item);</td></tr>
			<tr><td align="right">BHtmlItem* </td><td><a href="#body()">body</a>();</td></tr>
			<tr><td align="right">const BHtmlItem* </td><td><a href="#body()">body</a>() const;</td></tr>
			<tr><td align="right">BHtmlItem* </td><td><a href="#itemAt(const BPoint&)">itemAt</a>(const BPoint& point);</td></tr>
			<tr><td align="right">const BHtmlItem* </td><td><a href="#itemAt(const BPoint&)">itemAt</a>(const BPoint& point) const;</td></tr>
		</table>
		<h2>protected</h2>
		<table id="protected">
			<tr><td align="right">virtual void </td><td><a href="#scrollArea()">scrollArea</a>();</td></tr>
			<tr><td align="right">virtual void </td><td><a href="#updateEvent(const BEvent&)">updateEvent</a>(const BEvent& event);</td></tr>
			<tr><td align="right">virtual void </td><td><a href="#resizeEvent(const BEvent&)">resizeEvent</a>(const BEvent& event);</td></tr>
			<tr><td align="right">virtual void </td><td><a href="#styleEvent(const BEvent&)">styleEvent</a>(const BEvent& event);</td></tr>
			<tr><td align="right">virtual void </td><td><a href="#freshEvent(const BEvent&)">freshEvent</a>(const BEvent& event);</td></tr>
			<tr><td align="right">virtual void </td><td><a href="#paintEvent(const BEvent&)">paintEvent</a>(const BEvent& event);</td></tr>
			<tr><td align="right">virtual void </td><td><a href="#focusEvent(const BFocusEvent&)">focusEvent</a>(const BFocusEvent& focusEvent);</td></tr>
			<tr><td align="right">virtual void </td><td><a href="#keyDownEvent(const BKeyEvent&)">keyDownEvent</a>(const BKeyEvent& keyEvent);</td></tr>
			<tr><td align="right">virtual void </td><td><a href="#keyUpEvent(const BKeyEvent&)">keyUpEvent</a>(const BKeyEvent& keyEvent);</td></tr>
			<tr><td align="right">virtual void </td><td><a href="#charEvent(const BCharEvent&)">charEvent</a>(const BCharEvent& charEvent);</td></tr>
			<tr><td align="right">virtual void </td><td><a href="#mouseEnterEvent(const BMouseEvent&)">mouseEnterEvent</a>(const BMouseEvent& event);</td></tr>
			<tr><td align="right">virtual void </td><td><a href="#mouseLeaveEvent(const BMouseEvent&)">mouseLeaveEvent</a>(const BMouseEvent& event);</td></tr>
			<tr><td align="right">virtual void </td><td><a href="#mousePressEvent(const BMouseEvent&)">mousePressEvent</a>(const BMouseEvent& event);</td></tr>
			<tr><td align="right">virtual void </td><td><a href="#mouseReleaseEvent(const BMouseEvent&)">mouseReleaseEvent</a>(const BMouseEvent& event);</td></tr>
			<tr><td align="right">virtual void </td><td><a href="#mouseMoveEvent(const BMouseEvent&)">mouseMoveEvent</a>(const BMouseEvent& event);</td></tr>
			<tr><td align="right">virtual void </td><td><a href="#mouseClickEvent(const BMouseEvent&)">mouseClickEvent</a>(const BMouseEvent& event);</td></tr>
			<tr><td align="right">virtual void </td><td><a href="#mouseDoubleClickEvent(const BMouseEvent&)">mouseDoubleClickEvent</a>(const BMouseEvent& event);</td></tr>
		</table>
		<div id="desc">
			<h2>Detailed Description : </h2>
			<p>BHtmlWidget is a simple html browser. It manages html items inherite from BXmlNode. Defalut state is read only which could be set up using setReadOnly(bool). If readOnly is false you can edit the text of selected item.</p>
			<h3>Signals:</h3>
			<table>
				<tr><td>Signal_ItemSelected</td><td>Emited when html item is selected.</td></tr>
				<tr><td>Signal_ItemClicked</td><td>Emited when html item is left clicked.</td></tr>
				<tr><td>Signal_ItemChanged</td><td>Emited when html item's name, attribs or text changed, emited too when child is added or removed.</td></tr>
				<tr><td>Signal_ItemEdited</td><td>Emited when html item's text is edited. Before this signal the Signal_ItemChanged has been emited of course. </td></tr>
			</table>
			<h2>Detailed Description : </h2>
		</div>
		<h2 id="docs">Member Function Documentation</h2>
		<div id="BHtmlWidget(BWidget*)">
			<h3>BHtmlWidget(BWidget* parent = 0);</h3>
			<p>Constructs html widget with parent.</p>
		</div>
		<div id="~BHtmlWidget()">
			<h3>~BHtmlWidget();</h3>
		</div>
		<div id="setReadOnly(bool)">
			<h3>void setReadOnly(bool readOnly);</h3>
			<p>If readOnly is false this widget will paint selected item and hovered item rect and "a" item will work.</p>
		</div>
		<div id="readOnly()">
			<h3>bool readOnly() const;</h3>
			<p>Get if this widget is readOnly.</p>
		</div>
		<div id="open(const BString&)">
			<h3>bool open(const BString& fileName);</h3>
			<p>Open file and read html text to make the item tree, and locate body item to display. If html has style sheet it will be load and apply.You can get body item use body(), then use BXmlNode::root() to get root node.</p>
			<p>See also : <a href="#read(const BString&)">read()</a><a href="#write(const BString&)">write()</a></p>
		</div>
		<div id="save(const BString&)">
			<h3>bool save(const BString& fileName) const;</h3>
			<p>Save html item tree to text file.</p>
			<p>See also : <a href="#write(const BString&)">write()</a></p>
		</div>
		<div id="setItemSelected(BHtmlItem*, bool)">
			<h3>void setItemSelected(BHtmlItem* item, bool selected);</h3>
			<p>Set item to be the selected item. equals BHtmlItem::setSelected(bool). Signal_ItemSelected will be emited.</p>
		</div>
		<div id="selectedItem()">
			<h3>BHtmlItem* selectedItem();</h3>
			<p>Get selected item.</p>
		</div>
		<div id="selectedItem()">
			<h3>const BHtmlItem* selectedItem() const;</h3>
		</div>
		<div id="removeItem(BHtmlItem*)">
			<h3>bool removeItem(BHtmlItem* item);</h3>
			<p>Remove the item, if successed widget will refresh and if item has parent item the Signal_ItemChanged will emited with it's parent item.</p>
		</div>
		<div id="body()">
			<h3>BHtmlItem* body();</h3>
			<p>Get body item of html document. You can get the root "html" node use BXmlNode::root().</p>
		</div>
		<div id="body()">
			<h3>const BHtmlItem* body() const;</h3>
		</div>
		<div id="itemAt(const BPoint&)">
			<h3>BHtmlItem* itemAt(const BPoint& point);</h3>
			<p>Get html item at point.</p>
		</div>
		<div id="itemAt(const BPoint&)">
			<h3>const BHtmlItem* itemAt(const BPoint& point) const;</h3>
		</div>
		<div id="scrollArea()">
			<h3 id="scrollArea()">virtual void scrollArea();</h3>
			<p>Reimplemented from BScrollArea::scrollArea() to fresh the display content.</p>
		</div>
		<div id="updateEvent(const BEvent&)">
			<h3 id="updateEvent(const BEvent&)">virtual void updateEvent(const BEvent& event);</h3>
			<p>Reimplemented from BWidget::updataEvent(), update cursor blink if this is not readOnly.</p>
		</div>
		<div id="resizeEvent(const BEvent&)">
			<h3 id="resizeEvent(const BEvent&)">virtual void resizeEvent(const BEvent& event);</h3>
		</div>
		<div id="styleEvent(const BEvent&)">
			<h3 id="styleEvent(const BEvent&)">virtual void styleEvent(const BEvent& event);</h3>
		</div>
		<div id="freshEvent(const BEvent&)">
			<h3 id="freshEvent(const BEvent&)">virtual void freshEvent(const BEvent& event);</h3>
		</div>
		<div id="paintEvent(const BEvent&)">
			<h3 id="paintEvent(const BEvent&)">virtual void paintEvent(const BEvent& event);</h3>
		</div>
		<div id="focusEvent(const BFocusEvent&)">
			<h3 id="focusEvent(const BFocusEvent&)">virtual void focusEvent(const BFocusEvent& focusEvent);</h3>
		</div>
		<div id="keyDownEvent(const BKeyEvent&)">
			<h3 id="keyDownEvent(const BKeyEvent&)">virtual void keyDownEvent(const BKeyEvent& keyEvent);</h3>
		</div>
		<div id="keyUpEvent(const BKeyEvent&)">
			<h3 id="keyUpEvent(const BKeyEvent&)">virtual void keyUpEvent(const BKeyEvent& keyEvent);</h3>
		</div>
		<div id="charEvent(const BCharEvent&)">
			<h3 id="charEvent(const BCharEvent&)">virtual void charEvent(const BCharEvent& charEvent);</h3>
		</div>
		<div id="mouseEnterEvent(const BMouseEvent&)">
			<h3 id="mouseEnterEvent(const BMouseEvent&)">virtual void mouseEnterEvent(const BMouseEvent& event);</h3>
		</div>
		<div id="mouseLeaveEvent(const BMouseEvent&)">
			<h3 id="mouseLeaveEvent(const BMouseEvent&)">virtual void mouseLeaveEvent(const BMouseEvent& event);</h3>
		</div>
		<div id="mousePressEvent(const BMouseEvent&)">
			<h3 id="mousePressEvent(const BMouseEvent&)">virtual void mousePressEvent(const BMouseEvent& event);</h3>
		</div>
		<div id="mouseReleaseEvent(const BMouseEvent&)">
			<h3 id="mouseReleaseEvent(const BMouseEvent&)">virtual void mouseReleaseEvent(const BMouseEvent& event);</h3>
		</div>
		<div id="mouseMoveEvent(const BMouseEvent&)">
			<h3 id="mouseMoveEvent(const BMouseEvent&)">virtual void mouseMoveEvent(const BMouseEvent& event);</h3>
		</div>
		<div id="mouseClickEvent(const BMouseEvent&)">
			<h3 id="mouseClickEvent(const BMouseEvent&)">virtual void mouseClickEvent(const BMouseEvent& event);</h3>
		</div>
		<div id="mouseDoubleClickEvent(const BMouseEvent&)">
			<h3 id="mouseDoubleClickEvent(const BMouseEvent&)">virtual void mouseDoubleClickEvent(const BMouseEvent& event);</h3>
		</div>
	</body>
</html>